package Liczbens;
import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;


public class LiczbaTest4 {

	private String a;
	private int b;
	private Liczba x,laniewody;

	@Before
	public void setUp() throws Exception {
		a = "10";
		b = 3;
		
		try{
			x = new Liczba(a,b);
			laniewody = x;
		}
		catch(LiczbaException le1){
			fail("LOL");
		}
	}
	
	@Test(expected=Liczbens.LiczbaException.class)
	public void lanieTestu() throws LiczbaException
	{
		for(int j = 0 ; j <= 16 ; j ++)
        {
			try{
				System.out.println(j + ": " + x.zapis(j));
            }
            catch(LiczbaException le2){
				throw le2 ;
             	//fail("Bad input");
            }
        }
	}
	
	@Test(timeout=10)
	public void test()
	{        
        assertEquals("LanieWody",x,laniewody);
        assertTrue("Base", b < 17);
        assertFalse("Base", b < 2);
        assertNotNull("Liczba pusta?",x);
        
        for(int j = 2 ; j <= 16 ; j ++)
        {
            try{
                System.out.println(j + ": " + x.zapis(j));
            }
            catch(LiczbaException le2){
             	fail("Bad input");
            }
        }
        System.out.println("");
    }
	
	@Test
	public void podstawa17()
	{
		Liczba y = null;
		try{
			y = new Liczba("12",17);
		}
		catch(LiczbaException le1){
			fail("No i nie wyszlo");
		}
		
		try {
			assertEquals("(12)17 = 19", y.zapis(10), "19");
		}
		catch(LiczbaException le2){
			fail("Bad input");
		}
		
		try {
			assertEquals("(12)17 = (18)11", y.zapis(11), "18");
		}
		catch(LiczbaException le2){
			fail("Bad input");
		}
		
		try {
			assertEquals("(12)17 = (21)9", y.zapis(9), "21");
		}
		catch(LiczbaException le2){
			fail("Bad input");
		}
		
	}
}
